Настройка синхронизации пользователей из ALD Pro в Keycloak¶
Основная настройка Keycloak подробно описана на официальном сайте Keycloak. В данной инструкции описано создание Федерации пользователей (User federation) с пользователями ALD Pro.
Термины и определения¶
Федерация пользователей - синхронизация пользователей с сервером ALD Pro;
Single Sign-On - SSO - метод аутентификации, который позволяет пользователям безопасно аутентифицироваться сразу в нескольких приложениях и сайтах, используя один набор учетных данных.
Предварительная настройка ALD Pro¶
Создание пользователя¶
В ALD Pro необходимо создать пользователя (рисунок 1), через которого будет осуществляться синхронизация пользователей, групп, подразделений. В целях безопасности пользователь не должен обладать правами администратора. Для синхронизации пользователей достаточно прав обычного пользователя.
Активация пользователя¶
Перед дальнейшей работы, следует авторизоваться под созданным пользователем и сменить ему пароль.
Краткая инструкция настройки Keycloak¶
Наименование |
Значение |
|---|---|
Hostname |
astralinux.ru |
URI/Port |
ldap://astralinux.ru.ru:389 (_STARTTLS_) Note: Plaintext is not allowed. |
ldaps://astralinux.ru:636 |
|
BaseDN |
uid=_ALD_user_,cn=users,cn=_accounts_,dc=astralinux,dc=ru |
UserDN |
cn=users,cn=_accounts_,dc=astralinux,dc=ru |
GroupDN |
ou=users,o=_YOUR_ORG_ID_,dc=jumpcloud,dc=com |
Username LDAP attribute, RDN LDAP attribute |
uid |
UID LDAP attribute |
ipaUniqueId |
Search scope |
One level |
Подробная инструкция настройки Keycloak¶
Приведенная ниже инструкция актуальна для Keycloak Version 23.0.3
Создание User Federation c ALD Pro¶
Создание User Federation¶
Выполнен вход в Keycloak c правами администратора и создан рабочий Realm.
На вкладке “User federation” выбран “Add Ldap providers”, во всплывающем окне выбран “LDAP” (рисунок 2).
Заполнение блока General options¶
В открывшемся окне заполнены обязательные поля (рисунок 3).
В качестве вендора выбран “Other” или “Red Hat Directory Server”. В дальнейшем вендора для созданной федерации пользователя изменить нельзя.
Connection URL: URL-адрес подключения ALD Pro в формате: ldap://astralinux.ru:389
Остальные настройки остаются на усмотрение.
Заполнение блока Connection and authentication settings¶
Тип связи (Bind type) выбран простой (simple).
В “Bind DN” указан путь навигации к созданному ранее пользователю ALD Pro. DN записывается слева направо.
В “Bind credentials” указан пароль от привязанного пользователя ALD Pro.
Тест соединения и аутентификации¶
На этом этапе можно проверить успешность заполнения форм, нажав последовательно на “Test connection” и “Test authentication” (рисунок 5).
При успешном соединении и аутентификации пользователей появятся сообщения об успешном завершении операции (рисунок 6).
Заполнение блока LDAP searching and updating¶
Режим редактирования (Edit mode) выбран “READ_ONLY”.
Указан путь навигации к пользователям (User DN) сервера ALD Pro.
Атрибуты “Username LDAP” и “RDN LDAP” - “uid”.
“UUID LDAP” - “ipaUniqueId”.
Поле “User object classes” можно оставить по умолчанию.
В целях безопасности каталога ALD Pro, по желанию, можно указать фильтры синхронизации для пользователей.
Область поиска (Search scope) для ALD Pro - “One Level”.
Параметры тайм-аут чтения (Read timeout) и пагинация (Pagination) - на усмотрение.
Пример заполнения на рисунке 7.
Заполнение блока Synchronization settings¶
Для настройки импорта пользователей слайдер Import users находится в положении ON.
Если пользователей много, рекомендуется при их импорте разбивать их на партии с помощью настройки размера партии (Batch size).
Для полной и периодической синхронизации пользователей рекомендуется настроить время синхронизации с помощью параметров (Periodic full sync, Periodic changed users syn). Значения указываются в секундах.
Заполнение блоков Kerberos integration, Cache settings, Advanced settings¶
Остальные параметры настраиваются индивидуально и позволяют гибко управлять синхронизацией и безопасностью единого входа с помощью федерации пользователей.
Проверка синхронизации пользователей¶
При завершении настроек сохранить федерацию пользователей. После сохранения федерация появится на вкладке “User federation” (рисунок 9).
Выполнить переход на вкладку пользователи, здесь находятся все пользователи Realm, включая пользователей федерации. Иногда в настройках Keycloak для оптимизации работы на вкладке пользователи не отображаются пользователи федерации. Для того чтобы увидеть всех пользователей нужно в поиске ввести * и выполнить поиск.
Настройка соответствия атрибутов¶
Атрибуты пользователей keycloak не полностью соответствуют атрибутам ALD Pro. В таблице приведены основные соответствия атрибутов ALD Pro к Keycloak.
Keycloak |
ALD Pro |
Mapper type |
|---|---|---|
user-attribute-ldap-mapper |
||
firstName |
givenName |
user-attribute-ldap-mapper |
Синхронизация групп пользователей из ALD Pro в Keycloak¶
Настройка mapper в User federation¶
Для синхронизации пользователь должен обладать правами на чтение групп пользователей.
Выбрать ldap для которой нужно синхронизировать группы (рисунок 10).
На странице “Mappers” необходимо создать новое соответствие (рисунок 11).
Для создания правильного mapper необходимо заполнить следующие поля:
Поле |
Значение |
|---|---|
Name |
<название mapper> |
Mapper type |
group-ldap-mapper |
LDAP Groups DN (в соответствии с примером по созданию федерации пользователя) |
cn=groups,cn=accounts,dc=astralinux,dc=ru |
User Groups Retrieve Strategy |
|
Остальные поля возможно оставить в значении по умолчанию.
Настройка Client scope¶
На вкладке “Client Scopes” выбран “Create client scope”.
Параметр имя - “Groups”. Остальные по умолчанию. Сохранить.
Настройка mapper для этого “Client Scopes” (рисунок 12, 13).
mapper заполнен в соответствии с рисунком 14.
На данном шаге настройка синхронизации пользователей и групп из ALD Pro завершена.
Синхронизация подразделений¶
Создание mapper¶
Для синхронизации подразделений сервисный пользователь должен обладать правами на просмотр подразделений.
В Keycloak из коробки нет такой сущности как подразделение, но возможна синхронизация через сущность “группы”.
Выполнен переход в карточку “User Federation”.
Во вкладке “Mappers” добавлен mapper (рисунок 16).
Для создания правильного mapper необходимо заполнить следующие поля:
Поле |
Значение |
|---|---|
Name |
<название mapper> |
Mapper type |
group-ldap-mapper |
LDAP Groups DN (в соответствии с примером по созданию федерации пользователя) |
ou=astralinux.ru,cn=orgunits,cn=accounts,dc=astralinux,dc=ru |
Group Name LDAP Attribute |
ou |
Group Object Classes |
rbta-org-unit |
Member-Of LDAP Attribute |
rbtadp |
User Groups Retrieve Strategy |
|
Остальные поля остаются в значении по умолчанию.
Для корректной работы протоколов может понадобиться настройка Keycloak.